package ru.spb.nicetu.altx.mnemo.node;

import ru.spb.nicetu.altx.mnemo.cell.INodeCell;
import ru.spb.nicetu.altx.mnemo.cell.SettingNodeCell;

/**
 * класс, описывающий узлы типа "Сохранить в памяти"
 * 
 * @author arkady
 * 
 */
public class StoreMemoryTaskNode extends TaskNode implements IStoreMemoryTaskNode {

  /**
   * 
   */
  private static final long serialVersionUID = -9021777090800299843L;

  /**
   * конструктор
   * 
   * @param name
   *          - имя узла
   * @param simpleFuncClassName
   *          - имя класса функционального параметра
   */
  public StoreMemoryTaskNode(String name, String simpleFuncClassName) {
    super(name, simpleFuncClassName);
  }

  public String getMemoryValueClassName() {
    INodeCell nodeCell = getAllInputCells().get(0);
    if (nodeCell == null)
      return null;

    // Вычисляем тип значения, которое должно хранится в ячейке
    String valueClassName = nodeCell.getValueClassName();
    return valueClassName;
  }

  public INodeCell getMemoryNodeCell() {
    INodeCell nodeCell = getAllSettingCells().get(0);
    if (nodeCell instanceof SettingNodeCell)
      return nodeCell;
    
    nodeCell= getAllInputCells().get(0);
    if (nodeCell instanceof SettingNodeCell)
      return nodeCell;

    return null;
  }

}
